"""
28 - Dars. Funksiyalar 2.
"""


LLLL = [21, 23]
def get_sum(aaa, bbb):
    """
    Qo'shadi
    """
    print(aaa + bbb)

get_sum(12, 10)

def f222(l222):
    """
    Intga aylantirib 2 ga ko'paytiradi
    """
    def get_mult(x111):
        return int(x111) * 2
    return [get_mult(i111) for i111 in l222]

print(f222('2'))

def f322(l333):
    """
    Int bo'sa 2 ga ko'paytiradi va chop etadi
    """
    def get_mult(x111): #pylint: disable=inconsistent-return-statements
        """
        Filtrlaydi
        """
        if isinstance(x111, int): #instance intligini tekshiradi.
            return x111 * 2
    return [get_mult(i111) for i111 in l333 if get_mult(i111)]

print(f322([45, '2', 1]))

def f4ff(lwww):
    """
    map ro'yxatni elementlarini funksiyaga solib chiqadi
    """
    def get_mult(xfff):
        """
        2 ga ko'paytiradi
        """
        return xfff * 2
    return list(map(get_mult, lwww))
# map funksiyani
# ichiga ro'yxatni ichidagilarni har birini
# solib tekshiradi

print(f4ff(LLLL))

# 1. Berilgan ro`yxatda "odd" so'zi bor.
# Ushbu so'z o'rniga mos keluvchi son ro'yxatda
# bor yoki yo'qligini toping.

def odd_ball(arr):
    """
    ichida odd bo'lsa chop qil
    """
    alfabit = [i for i in arr if i == arr.index("odd")]
    return True if alfabit == [] else False #pylint: disable=simplifiable-if-expression

print(odd_ball(["even", 4, "even\
", 7, "even", 55, "even", 6, "even", 10, "odd", 3, "even"])) # True
print(odd_ball(["even", 4, "even", 7, "even", 55, "even", 6, "even", 0, "odd", 3, "even"])) # False
print(odd_ball(["even", 10, "odd", 2, "even"])) # True

# 2. Напишите функцию find_sum(n), где аргумент
# функции - это конечный элемент последовательности
# включительно. Функция должна вернуть сумму всех
# чисел последовательности, кратных 3 или 5.
# Попробуйте решить задачу двумя способами
# (один из способов в одну строчку кода).

def find_sum(uzum):
    """
    chop etadi
    """
    print(uzum)

find_sum(5) # return 8 (3 + 5)
find_sum(10) # return 33 (3 + 5 + 6 + 9 + 10)

# 3. Дан список имен. Выберите в новый список только
# те имена, которые состоят из 4-х букв.

# names = ["Ryan", "Kieran", "Mark", "John", "David", "Paul"] # ["Ryan", "Mark", "John", "Paul"]

def get_names(baqlajon):
    """
    chop etadi
    """
    print(baqlajon)

# 1 - Topshiriq
# Ro'yxatdagi so'zni o'rnini aniqlab, o'sha son
# ro'yxatda bor yoki yo'qligini aniqlash kerak.

def royxat(arr):
    """
    Ogabekk alochi.
    """
#     for i in arr:
#         ppp = False
#         if i == arr.index('qalam'):
#             ROLI_ROYS = True
#             print(i, ppp)
#         else:
#             print(i, ppp)

    return bool([i for i in arr if i == arr.index('qalam')])
royxat([1, 3, 6, 89, 45, 35, 'qalam'])

# 2 - Topshiriq
# Royxatda 3 va 5 bolinadigan sonlar
# yig'indisini chiqarish kerak.

def find_srum(ccc):
    """
    3 va 5 ga bolinadiganlarini qo'shadi
    """
    rrr = 0
    for i in range(1, ccc + 1):
        if i % 3 == 0 or i % 5 == 0:
            rrr += i
    print(rrr)
find_srum(int(input('Raqamni kiriting: ')))
# print(sum([i for i in range(1, ccc + 1) if i % 3 == 0 or i % 5 == 0]))

# find_srum(10)


# 3 - Topshiriq
# Royxatdagi 4 tadan kam bo'lgan ma'lumolarni
# yangi royxatga o'tkazish kerak.

def royxat2(kjhk):
    """
    torttadan kamini chiqaradi
    """
    print([i for i in kjhk if len(i) <= 5])

royxat2(['olma', 'bexi', 'anor', 'kivi', 'shaftoli', 'o\'rik'])
royxat2(['Og', 'Oga', 'Ogab', 'gchc,mhjcmk'])
